6882d519a82e4278eca42196a978bae9ee663df0,jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/BindTest.java,BindTest,testRebind,#,247

Before Change


            status = this.client.executeMethod(mkcol);
            assertEquals(201, status);
            mkcol = new MkColMethod(subcol1);
            status = this.client.executeMethod(mkcol);
            assertEquals(201, status);
            mkcol = new MkColMethod(subcol2);
            status = this.client.executeMethod(mkcol);
            assertEquals(201, status);

            //create new resource R with path bindtest1/res1
            PutMethod put = new PutMethod(testres1);
            put.setRequestEntity(new StringRequestEntity("foo", "text/plain", "UTF-8"));
            status = this.client.executeMethod(put);
            assertEquals(201, status);

            // enabling version control always makes the resource referenceable
            VersionControlMethod versioncontrol = new VersionControlMethod(testres1);
            status = this.client.executeMethod(versioncontrol);
            assertTrue("status: " + status, status == 200 || status == 201);

            URI r1 = this.getResourceId(testres1);

            GetMethod get = new GetMethod(testres1);
            status = this.client.executeMethod(get);
            assertEquals(200, status);
            assertEquals("foo", get.getResponseBodyAsString());

            //rebind R with path bindtest2/res2
            DavMethodBase rebind = new RebindMethod(subcol2, new RebindInfo(testres1, "res2"));
            status = this.client.executeMethod(rebind);
            assertEquals(201, status);

            URI r2 = this.getResourceId(testres2);

            get = new GetMethod(testres2);
            status = this.client.executeMethod(get);
            assertEquals(200, status);
            assertEquals("foo", get.getResponseBodyAsString());

After Change


        int status;
        try {
            HttpMkcol mkcol = new HttpMkcol(testcol);
            status = this.client.execute(mkcol, this.context).getStatusLine().getStatusCode();
            assertEquals(201, status);
            mkcol =  new HttpMkcol(subcol1);
            status = this.client.execute(mkcol, this.context).getStatusLine().getStatusCode();
            assertEquals(201, status);
            mkcol =  new HttpMkcol(subcol2);
            status = this.client.execute(mkcol, this.context).getStatusLine().getStatusCode();
            assertEquals(201, status);

            //create new resource R with path bindtest1/res1
            HttpPut put = new HttpPut(testres1);
            put.setEntity(new StringEntity("foo", ContentType.create("text/plain", "UTF-8")));
            status = this.client.execute(put, this.context).getStatusLine().getStatusCode();
            assertEquals(201, status);

            // enabling version control always makes the resource referenceable
            HttpVersionControl versioncontrol = new HttpVersionControl(testres1);
            status = this.client.execute(versioncontrol, this.context).getStatusLine().getStatusCode();
            assertTrue("status: " + status, status == 200 || status == 201);

            URI r1 = this.getResourceId(testres1);

            HttpGet get = new HttpGet(testres1);
            HttpResponse resp = this.client.execute(get, this.context);
            status = resp.getStatusLine().getStatusCode();
            assertEquals(200, status);
            assertEquals("foo", EntityUtils.toString(resp.getEntity()));

            //rebind R with path bindtest2/res2
            HttpRebind rebind = new HttpRebind(subcol2, new RebindInfo(testres1, "res2"));
            status = this.client.execute(rebind, this.context).getStatusLine().getStatusCode();
            assertEquals(201, status);

            URI r2 = this.getResourceId(testres2);

            get = new HttpGet(testres2);
            resp = this.client.execute(get, this.context);
            status = resp.getStatusLine().getStatusCode();
            assertEquals(200, status);
            assertEquals("foo", EntityUtils.toString(resp.getEntity()));

            //make sure that rebind did not change the resource-id
            assertEquals(r1, r2);

            //verify that the initial binding is gone
            HttpHead head = new HttpHead(testres1);
            status = this.client.execute(head, this.context).getStatusLine().getStatusCode();
            assertEquals(404, status);
        } finally {
            delete(testcol);